/**
 * 
 */
package org.stars.dao.events;

import org.stars.daostars.EntityBean;



/**
 * Gestore degli eventi del dao.
 * <p>
 * Gli eventi gestiti:
 * <ul>
 * <li><b>onBeginEvent</b>: l'inizio del resultset</li>
 * <li><b>onGetEntityEvent</b>: la creazione di un entity bean</li>
 * <li><b>onEndEvent</b>: la fine del result set.</li>
 * </ul>
 * 
 * @author Francesco Benincasa (908099)
 * 
 */
public interface DaoEventHandler extends EventHandler {
	/**
	 * Evento generato all'inizio della generazione della lista.
	 * 
	 * @param daoName
	 * 			nome del dao che genera la lista 
	 * @param entityName 
	 * 			nome dell'entity bean che rappresenta la singola riga
	 * @param columns
	 * 			nomi delle colonne
	 */
	public void onBeginListEvent(String daoName, String entityName, String[] columns);

	public void onBeginRowEvent(String[] columns);

	/**
	 * Evento generato nel momento in cui il bean e' stato creato.
	 * 
	 * @param bean
	 * 			bean appena creato
	 */
	public void onBeanCreatedEvent(EntityBean bean);
	
	/**
	 * @param columns
	 */
	public void onEndRowEvent(String[] columns);

	/**
	 * @param name
	 * @param value
	 * @param type
	 * 
	 */
	public void onGetColumnEvent(String name, Object value, Class<?> type);

	/**
	 * @param columns
	 */
	public void onEndListEvent(String[] columns);
}
